package net.lulihu.pangolin.headless.common.protocol;

/**
 * 协议消息类型
 */
public class ProtocolMessageType {

    /**
     * 心跳消息
     */
    public static final byte TYPE_HEARTBEAT = 0x00;

    /**
     * 代理数据转移
     */
    public static final byte TYPE_DATA_TRANSFER = 0x09;

    /**
     * 通道断开
     */
    public static final byte TYPE_DISCONNECT = 0x10;

    /*---------------------------客户端----------------------------------------*/

    /**
     * 客户端连接服务器成功后 发送认证秘钥和需要穿透的内网地址信息给服务器
     */
    public static final byte C_AUTH_AND_PENETRATE = 0x01;

    /**
     * 客户端发送给服务器 双向通道连接建立成功
     */
    public static final byte C_TWO_WAY_CHANNEL_CONNECT_SETUP = 0x05;

    /**
     * 客户端发送给服务器 连接真实服务地址失败
     */
    public static final byte C_REAL_CHANNEL_CONNECT_FAIL = 0x06;

    /**
     * 客户端发送给服务器 为真实服务地址开辟专用代理连接失败
     */
    public static final byte C_DEDICATED_AGENT_CHANNEL_CONNECT_FAIL = 0x07;


    /*---------------------------服务器----------------------------------------*/


    /**
     * 客户端发来的认证秘钥错误 返回此类型消息
     */
    public static final byte S_AUTH_FAIL = 0x02;

    /**
     * 服务端发送给客户端 申请穿透的映射端口消息
     */
    public static final byte S_PENETRATE = 0x03;

    /**
     * 服务端发送给客户端 与真实服务器地址建立连接消息
     */
    public static final byte S_REAL_CONNECT = 0x04;

    /**
     * 服务端发送给客户端 用户通道绑定丢失通知关闭连接
     */
    public static final byte S_USER_CHANNEL_LOST_BINDING = 0x08;

}
